{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pivot Tables"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Hi Guys, Welcome to [Tirendaz Academy](https://youtube.com/c/tirendazacademy) 😀\n",
    "</br>\n",
    "In this notebook, I'm going to show pivot tables in Pandas.\n",
    "</br>\n",
    "Happy Learning 🐱‍🏍 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df=pd.DataFrame(\n",
    "    {\"class\":list(\"ABC\")*4,\n",
    "     \"lesson\":[\"math\",\"stat\"]*6,\n",
    "     \"sex\":list(\"MFMM\")*3,\n",
    "     \"sibling\":[1,2,3]*4,\n",
    "     \"score\":np.arange(40,100,5)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>lesson</th>\n",
       "      <th>sex</th>\n",
       "      <th>sibling</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>1</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B</td>\n",
       "      <td>stat</td>\n",
       "      <td>F</td>\n",
       "      <td>2</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>C</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>3</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>A</td>\n",
       "      <td>stat</td>\n",
       "      <td>M</td>\n",
       "      <td>1</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>2</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>C</td>\n",
       "      <td>stat</td>\n",
       "      <td>F</td>\n",
       "      <td>3</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>A</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>1</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>B</td>\n",
       "      <td>stat</td>\n",
       "      <td>M</td>\n",
       "      <td>2</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>C</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>3</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>A</td>\n",
       "      <td>stat</td>\n",
       "      <td>F</td>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>B</td>\n",
       "      <td>math</td>\n",
       "      <td>M</td>\n",
       "      <td>2</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>C</td>\n",
       "      <td>stat</td>\n",
       "      <td>M</td>\n",
       "      <td>3</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   class lesson sex  sibling  score\n",
       "0      A   math   M        1     40\n",
       "1      B   stat   F        2     45\n",
       "2      C   math   M        3     50\n",
       "3      A   stat   M        1     55\n",
       "4      B   math   M        2     60\n",
       "5      C   stat   F        3     65\n",
       "6      A   math   M        1     70\n",
       "7      B   stat   M        2     75\n",
       "8      C   math   M        3     80\n",
       "9      A   stat   F        1     85\n",
       "10     B   math   M        2     90\n",
       "11     C   stat   M        3     95"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "lesson\n",
       "math    65\n",
       "stat    70\n",
       "Name: score, dtype: int32"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\"lesson\")[\"score\"].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>math</th>\n",
       "      <td>55</td>\n",
       "      <td>75</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>70</td>\n",
       "      <td>60</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class    A   B   C\n",
       "lesson            \n",
       "math    55  75  65\n",
       "stat    70  60  80"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\n",
    "    [\"lesson\",\n",
    "     \"class\"])[\n",
    "    \"score\"].aggregate(\"mean\").unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>math</th>\n",
       "      <td>55</td>\n",
       "      <td>75</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>70</td>\n",
       "      <td>60</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class    A   B   C\n",
       "lesson            \n",
       "math    55  75  65\n",
       "stat    70  60  80"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    \"score\",\n",
    "    index=\"lesson\",\n",
    "    columns=\"class\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">score</th>\n",
       "      <th colspan=\"2\" halign=\"left\">sibling</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>sex</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">A</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>55.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>85.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">B</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>75.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>45.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">C</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>65.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>65.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             score       sibling     \n",
       "sex              F     M       F    M\n",
       "class lesson                         \n",
       "A     math     NaN  55.0     NaN  1.0\n",
       "      stat    85.0  55.0     1.0  1.0\n",
       "B     math     NaN  75.0     NaN  2.0\n",
       "      stat    45.0  75.0     2.0  2.0\n",
       "C     math     NaN  65.0     NaN  3.0\n",
       "      stat    65.0  95.0     3.0  3.0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    [\"sibling\",\"score\"],\n",
    "    index=[\"class\",\"lesson\"],\n",
    "    columns=\"sex\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">score</th>\n",
       "      <th colspan=\"3\" halign=\"left\">sibling</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>sex</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "      <th>All</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "      <th>All</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">A</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>55.000000</td>\n",
       "      <td>55.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>85.0</td>\n",
       "      <td>55.000000</td>\n",
       "      <td>70.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">B</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>75.000000</td>\n",
       "      <td>75.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>45.0</td>\n",
       "      <td>75.000000</td>\n",
       "      <td>60.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">C</th>\n",
       "      <th>math</th>\n",
       "      <td>NaN</td>\n",
       "      <td>65.000000</td>\n",
       "      <td>65.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>65.0</td>\n",
       "      <td>95.000000</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All</th>\n",
       "      <th></th>\n",
       "      <td>65.0</td>\n",
       "      <td>68.333333</td>\n",
       "      <td>67.5</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             score                  sibling         \n",
       "sex              F          M   All       F    M All\n",
       "class lesson                                        \n",
       "A     math     NaN  55.000000  55.0     NaN  1.0   1\n",
       "      stat    85.0  55.000000  70.0     1.0  1.0   1\n",
       "B     math     NaN  75.000000  75.0     NaN  2.0   2\n",
       "      stat    45.0  75.000000  60.0     2.0  2.0   2\n",
       "C     math     NaN  65.000000  65.0     NaN  3.0   3\n",
       "      stat    65.0  95.000000  80.0     3.0  3.0   3\n",
       "All           65.0  68.333333  67.5     2.0  2.0   2"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    [\"sibling\",\"score\"],\n",
    "    index=[\"class\",\"lesson\"],\n",
    "    columns=\"sex\",margins=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">score</th>\n",
       "      <th colspan=\"2\" halign=\"left\">sibling</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>sex</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">A</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>85</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">B</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>45</td>\n",
       "      <td>75</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">C</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>65</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>65</td>\n",
       "      <td>95</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             score     sibling   \n",
       "sex              F   M       F  M\n",
       "class lesson                     \n",
       "A     math       0  55       0  1\n",
       "      stat      85  55       1  1\n",
       "B     math       0  75       0  2\n",
       "      stat      45  75       2  2\n",
       "C     math       0  65       0  3\n",
       "      stat      65  95       3  3"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    [\"sibling\",\"score\"],\n",
    "    index=[\"class\",\"lesson\"],\n",
    "    columns=\"sex\",fill_value=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multi-level pivot tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "sib=pd.cut(df[\"sibling\"],[0,2,3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th>sibling</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">math</th>\n",
       "      <th>(0, 2]</th>\n",
       "      <td>55</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(2, 3]</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">stat</th>\n",
       "      <th>(0, 2]</th>\n",
       "      <td>70</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(2, 3]</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class            A   B   C\n",
       "lesson sibling            \n",
       "math   (0, 2]   55  75   0\n",
       "       (2, 3]    0   0  65\n",
       "stat   (0, 2]   70  60   0\n",
       "       (2, 3]    0   0  80"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\"score\",\n",
    "               [\"lesson\",sib],\n",
    "               \"class\",fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>math</th>\n",
       "      <td>55</td>\n",
       "      <td>75</td>\n",
       "      <td>65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>70</td>\n",
       "      <td>60</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class    A   B   C\n",
       "lesson            \n",
       "math    55  75  65\n",
       "stat    70  60  80"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    \"score\",\n",
    "    index=\"lesson\",\n",
    "    columns=\"class\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">score</th>\n",
       "      <th colspan=\"3\" halign=\"left\">sibling</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>math</th>\n",
       "      <td>110</td>\n",
       "      <td>150</td>\n",
       "      <td>130</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>140</td>\n",
       "      <td>120</td>\n",
       "      <td>160</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       score           sibling      \n",
       "class      A    B    C       A  B  C\n",
       "lesson                              \n",
       "math     110  150  130       2  4  6\n",
       "stat     140  120  160       2  4  6"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    index=\"lesson\",\n",
    "    columns=\"class\",\n",
    "    aggfunc=\"sum\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">score</th>\n",
       "      <th colspan=\"3\" halign=\"left\">sibling</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>math</th>\n",
       "      <td>110</td>\n",
       "      <td>150</td>\n",
       "      <td>130</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>140</td>\n",
       "      <td>120</td>\n",
       "      <td>160</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       score           sibling      \n",
       "class      A    B    C       A  B  C\n",
       "lesson                              \n",
       "math     110  150  130       1  2  3\n",
       "stat     140  120  160       1  2  3"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot_table(\n",
    "    index=\"lesson\",\n",
    "    columns=\"class\",\n",
    "    aggfunc={\"sibling\":\"max\",\n",
    "             \"score\":\"sum\"})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cross-Tabulations: Crosstab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>lesson</th>\n",
       "      <th>math</th>\n",
       "      <th>stat</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sibling</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "lesson   math  stat\n",
       "sibling            \n",
       "1           2     2\n",
       "2           2     2\n",
       "3           2     2"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.crosstab(df.sibling,df.lesson)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sex</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sibling</th>\n",
       "      <th>lesson</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">1</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">2</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">3</th>\n",
       "      <th>math</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>stat</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "sex             F  M\n",
       "sibling lesson      \n",
       "1       math    0  2\n",
       "        stat    1  1\n",
       "2       math    0  2\n",
       "        stat    1  1\n",
       "3       math    0  2\n",
       "        stat    1  1"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.crosstab([df.sibling, df.lesson], df.sex)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can download the data set from https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "births=pd.read_csv(\"Data/births.txt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>gender</th>\n",
       "      <th>births</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>M</td>\n",
       "      <td>4440</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>M</td>\n",
       "      <td>4548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4548</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year  month  day gender  births\n",
       "0  1969      1  1.0      F    4046\n",
       "1  1969      1  1.0      M    4440\n",
       "2  1969      1  2.0      F    4454\n",
       "3  1969      1  2.0      M    4548\n",
       "4  1969      1  3.0      F    4548"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>gender</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ten_year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1960</th>\n",
       "      <td>1753634</td>\n",
       "      <td>1846572</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1970</th>\n",
       "      <td>16263075</td>\n",
       "      <td>17121550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980</th>\n",
       "      <td>18310351</td>\n",
       "      <td>19243452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1990</th>\n",
       "      <td>19479454</td>\n",
       "      <td>20420553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2000</th>\n",
       "      <td>18229309</td>\n",
       "      <td>19106428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "gender           F         M\n",
       "ten_year                    \n",
       "1960       1753634   1846572\n",
       "1970      16263075  17121550\n",
       "1980      18310351  19243452\n",
       "1990      19479454  20420553\n",
       "2000      18229309  19106428"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births[\"ten_year\"]=10*(births[\"year\"]//10)\n",
    "births.pivot_table(\"births\",\n",
    "                   index=\"ten_year\",\n",
    "                   columns=\"gender\",\n",
    "                   aggfunc=\"sum\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "sns.set() #For style"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Annual total births')"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEUCAYAAAAr20GQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABYjklEQVR4nO3dd3gVZfrw8e/MaemkJ0A6NUDoVToivQhYwN7R1Ze17LIsoOzqsquua9nVVfGnYlsVRRAVpIPSIUCAkIRQQhII6SH9tJn3j0A0QvppSZ7PdXl5mHqfSTL3zFMlVVVVBEEQhDZPdnYAgiAIgmsQCUEQBEEAREIQBEEQrhAJQRAEQQBEQhAEQRCuEAlBEARBAFpBQigtLWXatGlkZmbWud3Zs2e5++67mTFjBg8++CCXL192UISCIAgtQ4tOCAkJCcybN4+0tLQ6t1NVlccee4yHH36YdevWERsby4oVKxwTpCAIQguhdXYAzbFq1SqWLVvGwoULq5etXbuWjz76CEVR6NmzJ8uWLSM1NRUPDw9GjRoFwKOPPkpxcbGzwhYEQXBJUmvoqTxu3Dg+/vhjKioqWLZsGR9++CEGg4F//etfuLu7ExUVxZo1awgKCiIpKYmYmBieffZZfH19nR26IAiCy2jRRUa/tX//fs6fP89tt93GzJkz2bp1K2fPnsVisXDgwAHmzZvHmjVrCA8P58UXX3R2uIIgCC6lRRcZ/ZbVamXy5MksXboUgLKyMqxWK4mJiURGRhIXFwfAtGnTWLBggTNDFQRBcDmt6g1hyJAhbN68mfz8fFRV5S9/+QsfffQR/fr1o6CggOTkZAC2bdtGz549nRytIAiCa2lVbwjdu3fniSee4N5770VRFGJjY3nkkUcwGAy89dZbLF26lIqKCkJDQ3n55ZedHa4gCIJLaRWVyoIgCELztaoiI0EQBKHpREIQBEEQAJEQBEEQhCtadKVyYWEZimL7KpCAAC/y80ttflxbELE1jYitaURsTeOqscmyhJ+fZ63rW3RCUBTVLgnh6rFdlYitaURsTSNiaxpXjq02oshIEARBAERCEARBEK5o0UVG16OqKoWFuZhMlUDTXtlycmQURbFtYPWS0Ovd8PMLQpIkB59bEAShFSaE0tLLSJJESEgYktS0FyCtVsZicWxCUFWFoqI8Sksv4+3t69BzC4IgQCssMqqoKMXb27fJycBZJEnG29uPigrXa5kgCELb0LLumg2gKFY0mpb54qPRaFEUq7PDEATBiZw5mlCrSwhAiy2Db6lxC4JgG8rlS5R/vZTK3Z845fx2TQhvvvkmU6dOZerUqdcdXXTLli3MnDmTGTNm8Lvf/a7FTny/ffsWnnjiEWeHIQhCC2bNOUv5t8tRLl/CnLgVc/JPDo/Bbglhz5497Nq1izVr1rB27VoSExPZvHlz9frS0lL+8pe/sGLFCtatW0e3bt34z3/+Y69wBEEQXJbl/FHKv38RdG543PICmo49qNz9Cda88w6Nw26F7UFBQSxatAi9Xg9Ap06duHjxYvV6s9nMsmXLCAkJAaBbt25899139goHgE8+WckPP3yLh4cHffr05+efd/D559/w9tv/5ujRw1itCl27duMPf1iIweDBLbdMZ/LkacTHHyQ7+xKTJk3l4YcfA+D//u8dNm3aQLt27QgLi6jxvX57vCef/AOenl7ccst0evToxZkzqTzyyOOMHj3Wrt9XEATXZ0ragXHXR8gBkbhPegrZox1u4x6lfPVzVGx5C89Zy5AMtQ83YUt2SwhdunSp/pyWlsaGDRv4/PPPq5f5+flx0003AVBZWcmKFSu4++67G3WOgACva5bl5Mhotde++Ozbt4cff/yeDz/8FC8vL/7+9+cB+N//PkKn0/LRR/9DkiTefvs/vPXWf1i48M8AGI2VrFjxATk5Odx660xmzryZ06dT2blzG5988gUGg4E//elpJElCq5X56KNrj/fuu29VH69z5878/e8v1fqdZFkmKMi7zu9d33pnErE1jYitaVpybKqqUvjTlxh3fYV7p36EzH4GWe9+Za03lbf8kYufPoey9yNCblnokDpGuzfHSU1NZf78+SxcuJCoqKhr1peUlPD444/TvXt3Zs2a1ahj5+eXXjNeiKIo1+1DsGvXLsaMuRF3d0+sVpWbb76VgwcPsGvXT5SUlLJ//34ALBYzfn7+1ccYPnwUFouCv38gvr5+FBQUsX//PkaNGovBUPXDmzJlBl999QUWi3Ld4/n6+lUfr1evPnX2cVAUhdzcklrXBwV517nemURsTSNia5qWHJuqWDD+/BHmlJ/Rdh2JZtS95F+2AL/ax60jhsG3Ub7vcy5u/Qp9n8nNjkuWpes+SF9l14QQHx/PggULWLx4MVOnTr1mfU5ODg8++CBDhw5l8eLF9gwFjUZTozmXLFe9RVitCr///TMMGzYcgPLychTFXL2dwWCo/lyVoauO8etjaTSa6s/XO57JZKpe7+HhYcNvJQhCS6OaK6nY8l+sGcfQ95+BfsCsWp/+dXETsGanYjzwFXJwDNr23ewam90qlbOysnj88cd55ZVXrpsMrFYrjz76KJMnT2bJkiV2fx264YYR7Ny5jdLSqo5fP/zwLZIkMWTIML75ZhVmsxlFUXjppb/x3/++Weexhg69ge3bt1BSUoKiKPz44/rqddc73rvv1n08QRDajsqdH2DNPI5hxL0YBs6u894nSRJuox9E8gmicuvbKOVFdo3Nbm8I77//PkajkRdffLF62dy5c9m2bRsLFizg0qVLnDx5EqvVysaNGwHo1asXy5cvt0s8AwYMYvr0m3n00fsxGNyIjo7BYHDjvvse5M033+D+++9EUax06dKV3//+qTqPNWzYCM6cOc1DD92Nt7cPnTt3oaioEOC6x3viiSft8p0EQWhZlNJ8LOcOou89GX2PhjUqkfTuuN/0BOVrXqBy27u4T/kDkqypf8cmkFRndotrpuvVIVy6dJ7Q0Mhrtk1OPsnx48e49da5AHzxxaecPJnI88//45ptnTGW0VW1xX9VSy43dSYRW9OI2JqmttiMh77BdPg7POe9jOwd1Khjmk/tpnLHe+j7TsMw+JYmxeXUOgRXEh4ewaeffsS6dd9cGfwulIULlzg7LEEQ2ghVsWBO/glNeFyjkwGArutwrJdOYTr6PdroAWiCom0eY5tJCJ6eXvztb7U39xQEQbAnS9oR1PIi9CPva/IxDDfcieThi+TuY7vAfqXNJARBEARnMidtR/IKQBPeu8nHkLR6DAMb1zy/MVrl4HaCIAiuRCm6hPXCSXTdRyPJrnvbdd3IBEEQWglT0naQNOi6j3J2KHUSCUEQBMGOVIsJ86ldaKMHIHv4OjucOomEIAiCYEeWswfAWIaugf0OnElUKttZVtZF5s2bTVRUTI3lL730KiEhoU6KShAERzGd3I7s2x5N++7ODqVeIiE4QGBgECtX/s/ZYQiC4GDWvPMoOWcwDLujRcyI2KoTwu7jWew6ltXo/SQJ6uu/PaJ3e4bHtW9iZIIgtAXmk9tBo0fXdbizQ2mQVp0QXEVeXi733XdH9b8nTJjEHXfc48SIBEGwN9VUgfn0XrSdhjhsgpvmatUJYXhc057ibT2WkSgyEoS2x5y6ByzGBg9i5wpEKyNBEAQbU1UV88ntyIFRaIJj6t/BRYiEIAhOZL2USuGur1EV54yuK9iHMTMZpTCzRTQ1/bVWXWQkCK5MVVUqf15JeeEFdJcuYBh1H5IkntFag+LDm0Dvjq7TUGeH0ijit8/O2rfvwNdff+fsMAQXZM08gVJ4AbfwWMwpP2Hc+zkteHoS4QqlopjSpD3ougxH0hnq38GFiIQgCE5iOr4RycOX9ncsQ9drAuYTmzEd+sbZYQnNYC28SOX2FWC1oIttWcVFIIqMBMEprAUZWDNPoB90C5JWh2HYPLBUYjryHejcMPS9dh5ywXUpZYWY4tdiTvkJtAYCbrofk39HZ4fVaCIhCIITmI5tAq0efewYoGoydcOI+1DNJkwHvkLSGdD3HO/cIIV6qaZyTEfXYzq+CVQrup7j0fefQbvwDi47vWddREIQBAdTyouwnN6LrvsoJLdf5reVZBm3sQ9RaTFi3P0pks4NXdcRToxUqI1qNWM+uQ3T4e9QjaVoOw3FMGg2sk9ws45rNFn56MdkuoT7Mraf498w7JoQ3nzzTTZs2ADA6NGjWbhw4XW3W7hwIUOHDmX27Nn2DEcQXII5cSsoVvRxE65ZJ8la3G58jIqNb1C5833Q6tHFDHZClML1qKYKzKm7MR3biFqSi6ZjTwxDbkUTGNXsYxtNVt74OoHk9CL2n8wmyNeNXtEBzQ+6EexWqbxnzx527drFmjVrWLt2LYmJiWzevLnGNtnZ2Tz66KNs3LjRXmEIgktRLUbMJ7ejjeyL3O76o91KWj3uExagCe5M5dZ3saQdcXCUwm8pl7Op3PMZpZ89XfX25uaN+5Q/4DH1j7ZJBuaqZJCSUcR9k7vTMciTd79NJLeoovnBN4LdEkJQUBCLFi1Cr9ej0+no1KkTFy9erLHNd999x4033sjkyZPtFYbTZWVdZMSIgbz88vIay1NTUxgxYiDr14smqW2J+dRuVGMput6T6txO0hlwn/wUckA4FZvewLh/FarV4qAoBQBVVbBkHKd8w6uUfbkI88ltaCP74HHzs3jOeg5tWC+bnMdotvLGV1XJ4KGpPRjVpwNPzI5DVeGtb45jNFttcp6GsFuRUZcuXao/p6WlsWHDBj7//PMa2zz00EMAxMfHN+kcAQFe1yzLyZHRapuf52xxDACNRqZdO18OHNiLJKloNBoAtm/fgp+fH7Is1TiXLMsEBXnXecz61juTiK12qqqQeXILhvadCI0bUGM45OvH5o3ywN/J37ySkiPrkXJOETzrKXR+jp1Hw9nXrS72iE1VVUqObObyge8w519E4+mL78hb8ek3Aa23n01jqzRZeP39/aRkFPHUvP6MHRBeve8f7x7I8+/vY9WOMzw1r79Dhs+2e6Vyamoq8+fPZ+HChURFRdn02Pn5pShKzY48iqI0e2A6Ww5uZ7UquLu706VLV+Lj4+nffyAA+/btZcCAwSiKWuNciqLU2TohKMjbZVsviNjqZjl/FHPBRdzGPUpeXmn18npjG3QHboFdqdz5ARnvPYPb8LsdNpyyK1y32tgrNtOJLRj3fIocFI3b2EfQxgzCqtFRWAlUNux8DYnNZLbyxtfHSD5fyIPTYukV4Vtjn8hAD2YOj2btrnN08PfgxgFhzflaAMiydN0H6avsmhDi4+NZsGABixcvZupUx7erNp/aXdUuuJEkSaq3x6iu26hG/VGOHXsT27dvpX//gSQlJdK5cxfRK7WNMR37EcnTH23MwEbvq4seiCYomspt71K54z0smSdwG3EPkt7dDpG2XdbcNIz7vkAT0Qf3ib+321AiJrOVf6+uSgYPTI3lhl7XH5V52vAozmUV88XWVMKDvega7muXeK6yWx1CVlYWjz/+OK+88opTkoGrGTFiFPv27UFRFLZu3cy4cTc5OyTBgax5aVizktHH3YQkN+05TPYKwH3aIvQDZmE5s4+yb5ZhzTlr40jbLtVUTsWWt5DcfXAf87Bdk8F/Vh8jKa0qGdQ1RL8sSTw8vQcB7dx4e+0JCkuMdonpKru9Ibz//vsYjUZefPHF6mVz585l27ZtLFiwgLi4OHudupqu6/AmvVrbej4EAA8PDzp37sKxY0c5fPggjz76BFu3brLpOQTXZTq2EXRu6LqPbtZxJFnGMGAmmo6xVG57l/Jvl+M2+oEWMyOXq1JVlcqfPkQtzcd9+p9r9A+xtU82pnAyrZD7p9SdDK7ycNPxxOw4/vbxId5ee4KFd/RDq7FPsrJbQli6dClLly69Zvm8efOuWfbrpNGajRs3nnfeeZNu3Xqg1Yo+gW2FUlqA5cwBdL3GI+k9bHJMbWhXPOc8T8XmN6n86QNkn2A0oV3q37GVUCqKKT9zGtW7k00qW80nt2E5exD94FvR2vE6FhRXsjcxm/EDwxnRu+GTd4UFefHAlFje+TaRL7amcteEbnaJTwxu50DDh48iNTWFG28UxUVtiTlxC6Cg72XboSgkgyfu4x9H8gqgYvObKGWFNj2+K6vcvoJLX/yNyk3/RqkobtaxrHnnMe79HE14b/R97NsEfvuRC6io3DSw8RXEg2NDmDg4nG2HL3Aqo8j2wSESgt39evhrDw8Ptm7dzcCBVT1Plyz5C1OmTHdmeIKdqeZKTEk70EYPQvYOsvnxJTcv3CcsQDVXUrHpP6gWk83P4WosF5OwZp7APaZvVT+Br5diSU9o0rFUU8WVegNv3Mbar94AquoOdh69SN/OgQT6Nq0xwC1jOnHXhK6EBtjmTfO3REIQBDsyn9oNpnL0vSfa7Rwa/zDcxj6MknuWyl2ftOrWa6qqYjzwNZKnHyG3LMRj9jIkdx8qfnyNyl0fo1oaXulaXW9QkofbjY8hu9m3v8W+k9mUVpi5aWB4k4+hkWXG9Q/Dx0Nvw8h+IRKCINiJqqqYk3YgB0aiCe5k13Ppogei7z8Dy6mfq8ZKaqUs54+g5JxB338mss6Axj8cj5ufQ9d7EuaT2yhfvQxr7rkGHcuctB3L2QPoB85GG9rVrnGrqsqWQ5mEBXnRLcLXrudqDpEQBMFOlNxzKAUZ6LqPccj59ANuRhPRF+Pe/2G5mOSQczqSqiiYDn6N1C4UXbeR1cslrR63oXNxn7oQ1WKifO3fMB5eh6rUPuRDVb3B/9CE9ULfd4rdY09JLyIzt5TxA8Mc0uO4qVplUxdVVV36otemNb/qt0XmpB2gNaDr7Jh5dSVJxn3cfMrXPk/llv/iMWsZsnegQ87tCJbTe1EKL+I2/ndIsuaa9dqOPfC85QUqd32M6dA3mI58D5IEqFD9p6VW/adYkdzb4Tb2EYfMY735UAZe7jqG9gix+7mao9UlBK1WT1lZMZ6ePi0qKaiqSllZMVqtfcoGBcdSTRWYz+xH13mIQ3sTS3p33Cf8nrI1f6Vi03/wmLkYSduy5vW9HtVqxnjoG+TASLTRtff0lgyeuN/4GOaYQVgvpV5ZePU+IP1yT5BktF2GIbv72DdwILeogqOn85gyNBK97tpE5kpaXULw8wuisDCX0tKiJh9DlmUUxbYd0xpCq9Xj52f7liiC45lP7wOL0WHFRb8m+4bifuOjVPz4OpU7P8Rt3PwW9XB0PeakHail+biNur9BT/S66IHo6kgcjrTtcCYSklMmvGmsVpcQNBotgYEN7/BxPa48oJfQMpiTdyAHhCMHRTvl/NqIPugHzcF08GtMXv7oB9/aYpOCaq7EdHgdmvbd0XTs6exwGqXSZOGnhCwGdAvC38fN2eHUq9UlBEFwNmtuGkreeQzD73bqTVjfdypqaT6mhPWoqoJhyO0tMimYjm9CrSzBMPiWFhf/3hOXqDBamtXU1JFEQhAEGzMn7QCNHl2XYU6NQ5IkDCPuAVnGfOxHUKwYht3Rom6qSmUJpoQNaKP6ownp7OxwGkVVVbbEZxIZ6k2njvavq7AFkRAEwYaqKpP3oe00xGbjFjWHJEkYbrgLJA3mE5uqksLwuxzSssYWTEd/AHMl+oFznB1KoyWmFZCVX85D02JbTBIWCUEQbMh8Zn/VDSy2eaOa2pIkSRiGzfvlTUFVMIy4x+WTglJagDlxC9quN6Dxd/0K2d/acigTH089g7q7dlPTXxMJQRBsyJy8E9kvDLmBPZONZiuX8suwd2NESZKq6hBkTdVTt6JgGHWfSycF0+G1oKoYBtzs7FAa7WJuKcfO5DNjeBQ6G03H6wgNirS0tGq6v5MnT7J27VrMZrNdgxKElsiadx4l9xy62NENLiJYuSGZ+f/Ywre7zmG1c1NnSZLQD7oFff8ZmFN+onLnB6hOaF5dH9VixJS8E3PKLnQ9xtllUEB7+27XWTRyy2hq+mv1viG88cYbpKen88wzz/DQQw/RuXNnDh48yPLlyx0RnyC0GObknaDRoetyQ4O2zy4s50BSNsF+Hny76xwn0wp4ZHpPAtrZr3miJEkYBs4GSYMpfg2VihW3MQ8jyc5/irUWXsSctL16QEDZPwx9v5Y3GnCF0cLWg+kMjg2mnVfL6hRYb0LYuXMnn332GV9++SVTp05lyZIlzJnT8ip4BMGeVLMRc+oetDGDkQyeDdpn4/50NLLMy/9vJLviM/h4UwrLPjjAfZO7M7B7sF3jNQyYCbKM6eBqKlGvJAXH96JVrWYs5+IxJ23HmpUCsgZt9EB0sWPRtO/WYipjrzqXVcy3u85RYbQyvoU0Nf21BtUhuLu7s2fPHm6//XYATKbWP+a6IDSG5Uplsi52TIO2Lyo1sut4FiPi2uPv48awXqF06ujDu+tO8t+1JxjZuz13jO+KQW+/m7Sh33SQJEwHvqZSVavG9XFQUlAVC6ZDazEn70StLEHyDkI/+DZ03UY4ZDgJW1JUlWNn8tm4P52UjCLcDRrumtyd6PYt63tAAxKCn58ff/nLXzhx4gRvvPEGr7zyCsHB9n16EYSWxpS8A9mvQ4Pbym8+lIFVUZk4JKJ6WbCfB3++qz/f7jrH+r3nSc28zPwZPYkMtd84/Ya+05AkGeP+VVSqStUwF7J925pUzUOwEsupXWij+qPrMQ5Nxx4uXcF9PWaLwt7ES2w8kE5Wfjn+PgbmjuvMyD4diAjza5GjHdT7k3/ppZdYtWoV7777Lu7u7kiSxEsvveSI2AShRbDmZ6DknMUwbF6DijjKKy3sOHKBQd2DCfGr2VdBq5GZM7oTPSL9eO/7kyz/5BDzxne1a+Wkvs8UkCSM+76selO48VG7JgXT4W+xnNqFvv9MDANn2e089lJaYWbHkQtsjc/kcpmJiGAvHpneg4Hdg9FqWlZS+616f+qBgYHMnz+f0tJSioqKePDBBxt88DfffJMNGzYAMHr0aBYuXFhjfVJSEkuWLKGsrIyBAwfy17/+VUw+L7Q45uQdoNGi6zK8QdtvP5JJhdHK5CGRtW4TG+XPXx8YzP99n8QnG1Mwma1MHBxR6/bNpe89GZAx7vucyi1v43bjY0ga2/8tmk/twhS/Fm3X4ehbWHPStEvFbI3PZP/JHCxWhV4x/jw8OILYSL8WV9dRm3p/4p999hkvvfRSdVPTq3MNJCXVPQHHnj172LVrF2vWrEGSJB566CE2b97MTTf9MsH8H//4R/72t7/Rt29fFi9ezKpVq7jjjjua+ZUEwXFUy5XK5OhBSG5e9W5vtljZfCiTXtH+9RYFeXvo+X9z4lixLpEvt51GUdU6k0hz6XtPBFnGuOczKrf+F7cbf2fT41syE6nc+SGajj1wG3l/i7iJWqwKB5Nz2BafyZmLxRh0Gkb2bs+4/h3pGFT/z7ulqTchfPDBB3z55ZfExsY26sBBQUEsWrQIvb5qfP9OnTpx8eLF6vUXLlygsrKSvn37AjB79mz+/e9/i4QgtCjmxG1gqkDXY1yDtt99/BLFZSamDG3YjV2rkZk/syfydyf5avsZFEVl6rCoZkRcN32vmwAJ455PqdzyFurcP9nkuNb8DCo2/wfZtz3uNz1hl7cPWyosMbLjyAV2JlykuMxEiJ8788Z3YXiv9ni4uXbszVHvN2vXrl2jkwFAly5dqj+npaWxYcMGPv/88+plOTk5BAX90uEkKCiI7OzsRp0jIMB+GTooyL4TbjeHiK1pbB2bYiwn/dh63GP60D6uf73bW60Kmw5l0DXClxEDwms8IdcX2+L7h/Da50dYvfMs7h56bh/frdnx12rsLC57u5O/8T0ufrYMz+5DcevYFX1oDHITJnCyFOdzYdNraAwedLzrWbQ+tpvFzR6/b8lpBSx5dy9mq8LA2BCmDY+hb9cgZLlxbzSu/LdQm1oTQlFREQB9+/Zl5cqVTJs2rUb5vq+vb4NOkJqayvz581m4cCFRUVHVyxVFqfEH0ZRpL/PzS1EU20876crzIYjYmsYesRnjv0WpKEHqc3ODjn0gKZtL+eXMGdWJvLzSRsd2901dMJnMfLohmdISIzNG2HGuhcjhuI1WsBz9joItH1UtkzXIgZFogjuhCemMJrgTkldAnX+3qqmC8u/+jlJZjsf0P1NoNICNfg72+JkWFFfywkeH8PUy8PTtfQi+Uumfn19az572j80WZFmq80G61oQwdOhQJEmqnuf3xRdfrF7XkDoEgPj4eBYsWMDixYuZOnVqjXWhoaHk5uZW/zsvL080ZxVaDLWyFNOxDWijBqBpwCQ4qqqyfu95Qv096Ne1aU/Isizx4NQeyJLE2l3nUFSVmSOi7VYWr+s2kg4jppB9PgNrzhmU7DNYc85gTtqJ+cRmACQ376qJgPzD0fiHVX327YCk1aMqFiq2vIVScAH3SU+hCbRf/YctmMxW3vzmOEazlT/O7VudDNqSWhNCcnIyUPUkL/+mW/vVt4e6ZGVl8fjjj/Paa68xbNi148J37NgRg8FAfHw8AwYM4Ntvv2XUqFGNDF8QnMOUsB7MRvQDZzdo+8RzBaTnlHL/lO7IzbiBy7LE/VOqhlNetzsNRYVZI+2XFABkD1/kqAEQNQCo6lSmFGRizT6NkpeOtSAD88ntmK1XOqxKEnK79qAzoOSewzDqfrThcXaLzxZUVWXlj8mcv1TCE3PiWmWFcUPUW4cwZ84c1qxZU2PZXXfdxffff1/nfu+//z5Go7HGm8XcuXPZtm0bCxYsIC4ujldeeYWlS5dSWlpKz549ueeee5r4NQTBcZTyIkwntqDtPLTBwzKv33ceP28Dw3qGNvv8sixx35TuyDJ8vycNrUZixnDHTdUpyVo0gVFoAqOql6mKglqcg7UgA6UgAyU/A6UoC/3g29B3t/1Q4KcvXObbPecZFhtkkyf5Hw+ksy8xm1mjYujXpeUNpmcrtSaEe++9l+PHj1NZWUn//r9UmCmKQlxc/dl+6dKlLF269Jrl8+bNq/7cvXt3vv7668bGLAhOZTr8XdVEMw3sVHXm4mWS04uYO66zzTouyZLEPZO6Y7GqrP35HMF+7gzt0fxk01SSLCP5hiL7hkLMILuey6oovP9DEtkF5Xz381lu6BXKtOFRBPu6N+l4x87k8/X2MwzsHsy0Ya5drGVvtSaEt956i6KiIhYvXsw//vGPX3bQamu0DhKEtkQpycWcvANdt5HIPg2r89qwLx1PNy2j+nawaSyyJHHvpO7kFVXwwQ/JBLZzp3PHdjY9hyv6+VgW2QXlPH5LH06lFbDj6AX2Jl6qSgw3RBHUiMSQlV/Gu+sSCQ/24sEpLWdmM3upNSF4eXnh5eWFJEl07NiyxvQWBHsxxq8DSULff0aDts/KL+PIqVymD4/CTW/79us6rczjs+NY/nE8/1l9jGfvGUhgE5+UWwKjycq3u87RuWM7Jg6NZEDnACYPjWD93vPsOHqRPScuMTwulGnDouq9DuWVFv6z+jhajcQTc+LsOpBgS1Hv+2tJSQnl5eWOiEUQXJpSlIUldRe6Hjcie/k3aJ8thzLRaGTGDQizW1zeHnp+f2tvrFaVN74+RnmlxW7ncrbNhzK4XGriljGdqp/mfb0M3HFTV156dBhj+nZkz4lL/HnFPv799TFW7zzD7uNZnMsqpsL4y3VRFJV31yWSW1TB727uRWC71ptEG6PeRxZ3d3fGjh1Lt27d8PD4pfLmnXfesWtgguBqjIfWgNaAvu/U+jemaqKUPYmXGBIbjI9H4zt0NUb7AE8en9WLV1cl8M66E/z+lt5oXGDSG1sqKTexYf95+nYOpGu47zXr/bwN3DmhK5OHRrBhfzon0wo4fjYf66/6Kvl5G2gf4IEkSSSeK+Duid3oFuHnwG/h2upNCLfccosj4hAEl2bNO4/l7AH0/aY3eLz+vYmXMJqsjO1vv7eDX4uN8ufuid1YuSGZL7ac5s4JXR1yXkf5Ye95Kk1W5oyOqXM7fx837ryp6rtbrAq5RRVk5ZeTlV9W/f+cwgomDYlocVNc2lutCaG0tBQvLy/Gjh3ryHgEwSUZD30Deg/0vSc1aHtVVdl2+AJRod7EdHDcRCmj+nTgUn45Px5IJzTAgxvtWFTlSHlFFWw7nMnwuPaN6iOg1ci0D/CkfYAnIBrD1KfWhHD33XezZs2aa3osQ8N7KgtCa2DNPo01PQH94FsaPD3mqYwiLuaVcf+U7naO7lq3jOnEpYJy/rflFMF+7sTFBDg8Bltb8/M5JEniZnsO1yHUnhCudka72mNZENoiVbFiPPAVkrsP+p431b/DFVsPX8DTTcuQ2BA7Rnd9sizxyIwevPjpYd5ee4Knb+/bopujZuSUsi/xEpOGRODv4+bscFq1emudFEXhiy++YMGCBTz99NOsXbvWAWEJgvOpioXK7SuwZqWgHzQHSWdo0H6FJUaOnMplRO/26HXOacroptey4JbeeHvoeOmzw+w4cqHGW35LsnrnGdwNWqa08U5jjlBvQnjxxRdZv349o0aNYtiwYaxatYrXX3/dAaEJgvOoVguVW97GcmY/hiGNG37h54SLWBWVMU6usPT3ceO5+wbRI8qfjzem8OGGZMwWq1Njaqzk84UcO5PP1Bsi8XTTOTucVq/eVkZ79uxh7dq11UNfz5gxg9mzZ/Pkk0/aOzZBcArVaqZi81tY049iGHYH+rgJDd7XYlXYcfQCvWL8r5kv2Rk83XT8/pberN11ju/3pJGZU8rjs+IIaOf6RS+qqvLVjjP4eRu40UEttdq6et8QPD09sVp/eaqQJKlGfwRBaE1Ui4mKjW9UJYMR9zQqGQAcTc2jqNTEuH6ucwOTZYnZo2J4YnYclwrK+evKgySdL3R2WPWKT8nlXFYxN4+MdlrRW1tT6xvChx9+CEBgYCB33nknM2fORJZl1q9fT0xM3e2ABaElUs1GKja+jvViMm6jHkDXvfHDsW87nEmAjxu9O7ley57+XYN49t6BvPnNcf71xVFuHduJCYPCXXL8HrNFYfVPZ+kY6MnwXu2dHU6bUWtCOHXqFAA+Pj74+Phw8uRJACIiIhwTmSA4kGqqoOLH17Bmp+I25iF0XYc3+hgX88pITi9izuiYRk+36CjtAzxZes9APvghiS+3neZcVjEPTu2BTuv8Xs3ZheWcOFtA4rkCktILMZqsLJjT22WvZWtUa0L49QingtCSGQ+vIy1xM3j4I3sHIHkFVv3fOxDZKxDJzYuKrW+j5JzFbdyj6DoNadJ5th+5gFYjMbK3bUc1tTV3g5bfzerF+n3nWb3zLEaTlcdnx9lsaO6GqjBaSDpfSOK5Ak6cyye3qBKAwHZuDOsZSv8ugfRqBX0oWhLbD78oCC5EKcnFdHgdhpBILFpPlMuXUDJPgMVUc0NZg9v436GLHtik81SaLOw5kcXA7sH4eNp33CJbkCSJqcOi8DBo+WTTKd75NpFHZ/Z0WFI4lVHEa18lYDRZMeg1xEb4MWFQBL1i/An2dXfJYqy2QCQEoVUzHlwNkkzILX+i0Fh1o1ZVFdVYilqSh1KSh1qahyakC5qQzk0+z77EbCqMVsa1sNYwY/uHYVVU/rcllRXfnWT+jB52HxTvYl4Z/1l9DD8vA/dM7EbnsHYOfzsRrk8khN+wZp+mLN8EAT2cHYrQTNbcc1hO70PfbzpanwDILQGqno4lN29w80YT1PyhEKrGLcokItiLTg4ct8hWxg8Mx6qofLntNFpZ4qFpPexWbl9YYuS1VUfRaGSeuq1PoyazEeyv3lZGtbn//vttHoyzqapK5U8rqSjLw/PuN5E0Il+2VKqqYtz3BZKbN/o+U+x6rtTMy2TmlnHf5O4ttqhj4uAIrIrK1zvOIMsSD0yJtXlSqDBaeP2rBEorLSy6o79IBi6o3lZGbYmSdx6lMBMA66VTaDuKt4SWypp+FGtWCoYR9yDp7Xvj2X7kAu4G54xbZEtThkZitSqs+fkcsixx32TbDcxnsSq8+c1xLuaV8ftbexMZ6m2zYwu2Y9dWRqWlpcydO5d33nmHsLCaZas7d+7klVdeAaBr1648//zzeHo2bCRJezGf2gWyFkmSsKQniITQQqmKFeP+VcjtQpvUl6AxCkuMHErOYWz/jq1iCsbpw6OxKirrdqehlSWevqtpley/pqgqH6xPIul8IQ9OjaVXtGg55KrqLRM5cuQIK1asoLy8HFVVURSFzMxMduzYUed+CQkJLF26lLS0tGvWFRcXs2jRIj755BM6d+7Me++9x2uvvcbSpUub+j2aTbVasJzehzaqHzrMGNMTYNg8p8UjNJ05eSdKURZuExYgyfYt9lu3+xxQVQ7fWswcEY3FqrJ+33mM1oOEBXjg5aHD20OP99X/u+tw02saVES2eucZ9iVmM2tUDMPjRCczV1bvX8vSpUuZOXMmGzduZO7cuWzdupUJE+rvzr9q1SqWLVvGwoULr1mXlpZGhw4d6Ny5qlXH2LFjeeihh5yaECwZCajGUnRdR+ChFFNx9n2U4hxkn2CnxSQ0nmqqwBS/Fk37bmgj+9n1XBfzyvgp4SI39g8juBWVh0uSdKVzHWw6kMFei3Ld7bQamWA/d6LbexPToR0x7X0IC/as0Uppa3wmG/alM6ZfR6aJ0UpdXr0JQZIkHnnkEQoLC4mJiWH69OnMmTOn3gMvX7681nVRUVFcunSJ5ORkunfvzoYNG8jLy2tc5DZmObUbyb0dmrBeeOgryd/0Ppb0BPS9Gj4GvuB8poT1qBXFGCY+afcK3q93nMFNr2Ha8Ci7nscZJEli9qhOPDK7DxkXiiipMFNSbqKkvOr/peVmSsrNXMwvI+F0PruPXwJAr5WJDPUmur0PXu461vx0lr6dA7nrpq4ttsK9Lak3IVwt14+IiCA1NZUBAwYgN7Odso+PDy+99BLPPvssiqJw2223odM1fmjbgICGT6VXF2vZZc6nJ9Bu0FQCQnwB0AV0QL50gqCxs21yDlsKCnLdCjlnxmYpzifj+EY8e44gpGefa9bbMrbEs/kcPZ3HPVNi6RTZ/DJxV/6ZRoTVPQm9qqpkF5RzKr2QlPRCTp0vZPuRC5gtCt0i/Vjy4BDc9PYpunPl6+bKsdWm3p9SXFwcTz75JL///e+ZP38+aWlp1UNhN5XVaiU0NJSvvvoKgGPHjhEe3vgy2Pz8UhSl+ZN+mE5sBcWKOXwQubklVT/IDnFUJG4l52JegydGcYSgIG9yr7SndzXOjq1ixyeoigK9Z14Thy1jU1WVFWuO4edtYFhscLOP6+zrVpeGxqYBYsPaERvWDm6IwmJVuFRQTqi/ByWXK7DHt2sN183RZFmq80G63kf9JUuWcN999xEdHc3ixYtRFIVXX321WUFJksQDDzxAdnY2qqqycuVKpkyxb1vxuphP7UIOjETj/0tS0kb0AcWC9cJJp8XVVqimCip3fYz57MEmH8Oan4Hl1C50vcYje9t3MvX4lFzOXizm5hHRGMSwzNel1ciEBXmJHsgtTIMSQt++fQEYM2YMixcv5rXXXmvSyR5++GGOHz+OLMs8//zzPPTQQ0yaNAkfHx8efPDBJh2zuawFGSh559F1HVFjuSa0K+jcsKQnOCWutkKpLKH8h5cxn9xG5Za3qNzzGarV0ujjGPd/CQYPDP2m2yHKX1isCl/vPFM1LLNoMSO0MrWW/Sxbtozs7Gzi4+MpKCioXm6xWMjIyGjwCbZt21b9+b333qv+PGbMGMaMGdPIcG3PfGo3SBq0vxnhUtJo0XbsiSXjGKqqigoxO1BK86lY/wpKSR5uNz2BNSsF84nNWHPP4T7+cWTPusuuAVRzJaaE9VgzT2AYOg/JYN++LDuPXiSnsIInbxXDMgutT60J4ZZbbiE1NZWUlBQmTpxYvVyj0VS/MbR0qmLFkroHbURvZPdrx6DRRvTBkhaPUpCJJqD1tDN3BUpRFuU//BPVVIH7lD+gbd8NXfRANCGdqdz5AeWrn8Ptxsdq7RyoWi2Yk3ZgOrIOtaIYbfRAdD3H2TXmCqOFdbvP0T3ClzgxLLPQCtWaEOLi4oiLi+OGG24gNDSUCxcuYLFYiIxsPW2JrZknqm4mvykuukoT0RsAS3qCSAg2ZM1No2LDv0CS8Ji+CE3gL79Tuk5DkP3Dqdz8JhXr/4l+4Bz0facgSVWlm6qqYDm9D+OhNagluWjad8MwYUGzRiptqA370ykpN3Pr2M7ijVFoleptLlRZWcnUqVPJyclBURT8/Px499136dSpkyPisyvzqd1IBq+qCuTrkD18kQMjsaYnQL9pDo6udbJcTKJi4xtIBk88pv4RuV3oNdto/DrgMes5Knd+gOng11izU3Ef+wjW7FSMB1ajFGQgB0TiNvkZNGG9HHJzLiwxsulAOoNjg4lu3/JGNBWEhqg3Ibzwwgs89NBDzJo1C4DVq1fz17/+lY8//tjuwdmTaizDknYYXeyYOkc11Ub0wXTkO9TKUiQ32/R7aKvMafFUbnkbuV0I7lP+UGcdgaRzw+3GxzCHdsG49wtKP3sKLCYkn5CqoqSYQdVvDY7w7a6zWBWV2aNb/oOQINSm3r+o/Pz86mQAMGfOHAoLC+0alCOYz+wHxXJN66Lf0kb0AVXFknnCQZG1PkpJHsYj31O5+U3kwEg8pv+5QRXGkiSh73UTHjP+jCakM4YR9+J523J0nYY4NBlcyCvj52NZjGtlQ1QIwm/V+4ZgtVopKirC19cXoEaLo5bMfGo3sl9H5MC660TkoGgkN28s6QnoOg91UHQtm6ooKDlnsKQnYEk/ilJQNaS4Jrw37uMfb3RHP01IZzymXjsmliOoqspX20/jptcyvRUOUSEIv1ZvQrjrrru4/fbbmTx5MpIksX79eu655x5HxGY3SlEWSs4ZDENur7f8WZJkNOFxWNOPoSoKkp2nF2ypVIuJ0pO7qTixr+paGUtBkqsqfYfORRvRF9n32voCV6aoKp9tOsWxM/ncPq4zXu6NH15FEFqSehPC7bffTkREBLt27UJRFJYtW8YNN9zgiNjspqrvgYS2y7AGba+N6IMldQ9K7lmHtGZpiSp/+pDS03vB4Ik2vDfayL5ow3rZvV+AvSiqyicbU9h59CKTh0QwYZBoZSa0fvUmhMWLF/P3v/+dYcN+uXkuWLCAf//733YNzF5URcGcugdNWByyh2+D9tGG9QJJrmp+KhLCNZTSfCxn9uMzYBJKv9ta/FuUoqqs3JDMrmNZTB0WyexRMaKZqdAm2L2nsquxZiWjlhWgG3p7g/eRDJ5oQjpjSU/AMKj+ob/bGvPJbYBKu6EzKTK38GSgqHy4PondJy4xY3gUM0dEi2QgtBltr6eyRoumY89GT56iieiD6cBXKGWFDWoh01aoFiOmpB1oI/uj8w0GFxzhsaGsisL7PySxLzGbm0dEM2NEtLNDEgSHanBP5dZCG9oV7dQ/Nn6/KwnBknEMfffRdoisZTKn7gVjGbq4+mfRc2VWReG9705yICmH2aNimHZDlLNDEgSHq/f9vjUlg+aQ/ToieQVU9VoWgKommeYTm5ADIqtGh3VRqqqSlVdGYYmRskozZouCqv4yj4bFqvDuuqpkcOuYTiIZCG2WfWcgb0UkSUIb3hvz6b2oVjOSRjRBtF5IRCm8iNuYh126nP2970+yLzG7xjJZktDrZPQ6DRJwuczE7eM6M3FwhHOCFAQXIBJCI2gj+mBO2o416xTasJ7ODsfpTMc3Ibn7oO002Nmh1CrhdB77ErOZODSSEF83TGYFk9mK0Wyt+myp+hwXHcCwXuJtWGjbak0IH374YZ073n///TYPxtVpOsaCRosl41ibTwhK0SWsGcfQD7jZZd+WjCYrn246RfsAD+bP6k1RYZmzQxIEl1ZrQjh16pQj42gRJK0BTVAMSs5ZZ4fidKYTm0HWoosd6+xQavXt7nPkF1ey6M7+6LQtuzmsIDhCrQnhH//4hyPjcBnJ5wtJTC+iZ4TvddfL/mFV9QhteBY11ViG+dQutJ2HIHu0c3Y415WeXcKmAxmM6tOeruG+zg5HEFqEeusQjhw5wooVKygvL0dVVRRFITMzkx07djggPMe62kO1qNTI6wtG4Ka/9vLI/mFgqkAtK0DyapuzZplTfgKLEX0v12xqqqgqH29MwdNdyy1jRM9yQWioet+jly5dSr9+/SgtLWX69Ol4eXkxYYJr3gia62RaATlFFZgsCsfPXn9UV9k/DKB6BM+2RlUUTIlb0bTvVmOmM1ey88gFzl4sZu64LmJAOkFohHoTgiRJPPLIIwwePJiYmBhef/11du/e3aCDl5aWMm3aNDIzr715JiYmMmfOHGbMmMH8+fMpLi5ufPQ2tv3wBbw9dPh46olPybnuNhq/jgBY22hCsJw/glqSh85F3w6KSo18vfMMsZF+DO0Z4uxwBKFFqTcheHpWjVYZERFBamoqbm5uyA0YvCwhIYF58+aRlpZ23fXLly9nwYIFrFu3jujoaN5///3GRW5jBcWVHD2dx4je7RkW156EM/mYLdZrtpMMnkie/m32DcF8YhOSd2Cjh/5wlC+2pmK2qNwzsVubreMRhKaq984eFxfHk08+ydChQ/nggw948cUX0Wrr776watUqli1bRnBw8HXXK4pCWVlVM8CKigrc3NwaGbpt/ZRwEVQY3bcjN8R1wGiycuJc7cVGbTEhWPPOY81KQd9zvEuOaHrsTD4HknKYdkMkIf4ezg5HEFqceu/sS5YsISEhgejoaBYvXsyePXv417/+Ve+Bly9fXuf6RYsW8cADD/D3v/8dd3d3Vq1a1fCobcxiVfgp4SI9Y/wJ9nXH188TD4OWQ8m59OsSdM32Gv8wTBcSURULktx2+vaZTmwCrQFdt5E2P3ZBcSXeHvomNw81mq18uimF9gEeTB7imnUbguDq6r2bXb58maioKIqKiujbt69NRjqtrKxkyZIlrFy5kt69e/Phhx/ypz/9iRUrVjTqOAEBtpn0fs+xixSVmnji1s4EBXkDMDSuPftPZOHr53nNTaoksjO5CevxlUvQBzl+qIOrMTqSpbSIkjP78el3E4FhtffobUpsOw9n8trnh4nu4MOS+4cQ2IR5i1d+n0je5Ur+8bvhdGh//aawzrhuDSViaxoRm23VmxCGDh2KJEk12t0HBQXx008/Nfmkp06dwmAw0Lt3b6BqVrY33nij0cfJzy9FUdT6N6zHup2n8fcxEBXkSW5uCUFB3vSK9GPboQx+jk8nLqZm81KrLhCAvNMp6HDsUNhBQd7kOmGIaePRH8FqwRozutbzNyW2HUcu8MnGFCJDvcnMKeX3r+7giVlxdA5reP+GE+fyWbvzDCN6tyfEx3DdGJx13RpCxNY0IrbGk2WpzgfpehNCcnJy9WeTycT333/PuXPnmhVUZGQkly5d4uzZs8TExLB161bi4uKadcymyi4oJzGtkFkjo5HlXyohe0b7YdBriE/JuSYhyL7tQZLbVD2C5dwh5KAYm86LvGHfeb7acYbenQL43c29yL1cyX++PsbLnx/m7gndGNmnQ537Xy4zsWpbKnsTswnxc+e2saLPgSA0R6MKbPV6PbNnz25ws9Pfevjhhzl+/Djt2rXjH//4B08++STTp09n9erV/P3vf2/SMZtrx9ELaGTpmpuPTquhb+dADp/Kw6ooNdZJGh2ybyhK4QVHhuo0SkkuSu45tNEDbXI8VVVZvfMMX+04w+DYYJ6YHYdep6FjoCdL7x1I13BfPtyQzOdbUq+59lDV8Wz7kQssWbGPA0k5TL8hir8+MFj0ORCEZqr3DaGoqKj6s6qqnDhxolF9BrZt21b9+b333qv+PHr0aEaPdu5EMyazlV3HsujXJRBfL8M16wd0DWL/yWxOpRcRG+VfY53sF4Y1t3lvSi2F5Vw8ALqY5icERVX53+ZTbDt8gVF9OnDPxG413sy83HU8dVsfvtx2ms2HMriYV8r8mb2qb/bnL5Xw8cYUzmUV0z3Cl7sndqN9gGez4xIEoZF1CAABAQEsWbLE7oE5wqGUHMoqLYzt1/G66+NiAtBrZQ6dyr02IfiHYTl7ANVUgaRvfCVoS2I+dwg5IBLZ5/pNiBvKqih88EMSexOzmTQ4glvHdrpuXwGNLHPH+K6EB3nx8cYU/vbxIR6e3oMDJ3PYEp+Bt7uOh6f3YGiPENHXQBBsqFF1CK3N9iMXCPH3oHvk9SuGDXoNcTEBHE7J5c6buiL/6uaj8Q8HQCm8gCak9ZZdK6UFKNmn0Q+a06zjmC1W3vk2kSOpecwaFcO0YZH13sxH9ulA+wBP3lxznOUfxyMBo/t1ZM7oGDzdRPGQINhavQmhoqKCH3/8kcuXL9eYdrClz4eQnl3CmQvFzB3Xuc4b04DuQcSfyuV05uUao2ZeHdPIWpDZqhOCJe1KcVET6w+Ky0wcSMrmp4QsMnNLuWN8F8YPDG/w/p3D2vHcvQPZsC+dob1C6NTBNUdXFYTWoN6EsHDhQi5cuEDXrl1b1ev5jiMX0GllbohrX+d2fToFotVIxKfk1kgIkncAaA2tvqWR5dwhZL+wqpZVDWQ0WTmcmsu+xGwSzxWgqCrhwV48dnMvBnVvfLGTv48bd05w3TmbBaG1qDchpKSksH79+gYNV9FSVBgt7D2ZzeDuwfW2THE3aOkZ5U/8qRzm3vjL24Qkycj+HVt1QlDKi7BmnUI/YGb92yoq8cnZ/LjnHEdO5WE0W/H3MTBpSARDe4YQFmSbToSCINhPvXf50NDWN8/svsRLGE1WxvS/fmXybw3sHkzCmXzOZZUQ08GnernGPwzLucOtdrIcS9phQG1Qc9NPN59ix5ELeBi0DO0ZwtAeIXQJ961R7yIIgmurNyF07dqVe+65h5EjR9YYgK6l1iGoV9qwR4R4EdPep/4dgL5dAtHIEvEpOTUSguwfjpr8E2rFZSQPXztF7DyWc4eQ24Ui+9WdOPMuV/BzwkVuGhzBLaNixHSVgtBC1ZsQysrKiIyMJD093RHx2N2ZC8Vk5pZxz6SGD4/s6aaje6Qf8Sm53DLml6aSv54sR25lCUGpLMF6MRl936n1XqeN+zMAmDehO1gsjghPEAQ7qDchtLa5lc1Whej23gzt0bjJUwZ2C+KjH1PIyCklIqRq0Koas6eF9bJ5rM5kSTsMqlJvcVFxmYmfjl1kWM9QgvzcXXL8FkEQGqZBcyq/+uqr1zQ7/e677+wamL3ERvrx7L2DGr1fv65BfLwxhUMpub8kBDdvJPd2rXL2NMu5Q0jeQcgBdY/muvlQBhaLwuShjh/1VRAE26o3ITz33HPMnj2bHj16tMqK04by8dDTLdyX+JQcZo+KqV7eGifLUY1lWDNPou89sc6feYXRwrbDF+jfLUgMHyEIrUC9CUGr1bbYCmRbG9AtmM82n+JiXhkdAqtugLJ/GOaT21AVxSVnEWsKy/mjoFrrLS7afuQCFUYLU4eJCWkEoTWo9w7WpUsXUlJSHBGLy+vftWr2tEMpOdXLNP5hYDWjFufUtluLYz57EMkrADkoutZtTGYrmw6k0zPan6jQhrXWEgTBtdX7hpCRkcGcOXPo0KEDBkPViKCSJLFu3Tq7B+dq/LwNRIZ4k5JeBMOrlv0yhEWGTecKcBbVVIE18wS6njfWWVy063gWxeVmpg4VbweC0FrUmxCeeuqp6s8Wi4WCggJWrlxpz5hcWkSIF0dS86o7o8l+HQCpqh4hpvGV1a7Gkp4AiqXOsYusisKP+9Pp1MGHbhG+jgtOEAS7qjchDB48mMuXL/Pll1/y2WefUV5ezt133+2I2FxSeLAXPx/LoqjUhJ+3AUlrQGoX3Goqli1nDyJ5+CKHdKp1mwMnc8i7XMm88V3adEMDQWht6kwIZ8+e5aOPPmLdunV07NiRyspKtm3bhrd3y5s82lauNjlNzy7Bz7uqCE3jF4a1sOUnBNVsxJJxHF33kUjS9auXFFVl/b7zdAzypE/nQAdHKAiCPdVaqfzII49w1113odPp+Pjjj/n+++/x9PRs08kAqB6kLSOntHqZ7B+GejkH1WJyVlg2Yck4BlYT2ujai74SUvO4kFfGlKGRYpwiQWhlak0IJ0+epGfPnnTp0oXIyKqKQ1E8AB5uWgLbuZH+m4QAKkrhRecFZgOWsweR3H3QhF5/qGlVVflh33kC27kxOLZ5s6cJguB6ak0IO3bsYNasWXz//feMGDGCBQsWYDQaHRmby4oI8a7xhlA9e1pBhrNCajLVVIG1IBNL+lEs6Qloo/rX2p8iOb2IsxeLmTwkAk0r6XMhCMIvaq1D0Gq1TJkyhSlTpnD69Gm++OILjEYjEyZM4P7772fevHn1Hry0tJS5c+fyzjvvEBYWVr08KSmJRYsWVf+7oKCAdu3a8f333zfz6zhGeLAXR07lYjRZMeg1SD7BoNFhLcjElSd2NJ/ajTXnDEppPmppAUppHpgqamyj7Tys1v3X703Dx1PPiN4NnyxHEISWo0Gz3nTu3JmlS5fyzDPPsG7dOr744ot6E0JCQgJLly4lLS3tmnWxsbF8++23QNUUnbfeeit/+ctfGh28s0QEe6ECmbmldOrYDkmWkf06uHRLI6XoEpU73gOdO7JPIJJXALr2XZG9Aqo6oXkFVI1d5HH9KSrTLhWTmFbIrWM6odNqHBy9IAiO0Khp0Nzd3bn99tu5/fbb69121apVLFu2jIULF9a53bvvvsugQYMYOLBpc/Y6Q3hwVcVyek5VQoCqegRrxglnhlUn89kDAHjeuhzZy7/R+/98LAu9VmZMv4ZNKiQIQstjt3kxly9fXu82JSUlrFq1qsWNnBrQzg13g/Y39QhhWE7tRqksQXZzvZZYlrMH0YR0aVIysCoK8ck59O4ciLuh9UylKghCTU796163bh3jx48nICCgSfsHBNhvnt6goLpv6jEd25FVUF69XXl0Vy7tAx9rPu5BHewWV0Ni+y1T/gVKCjIImPAA7Rq5L0BCai7F5WbGD4ms99yNjc2RRGxNI2JrGleOrTZOTQhbtmxh/vz5Td4/P78URVHr37CRgoK8653opb2fOz8fyyI7uxhZllA0VUmt4Fwqes8om8fUmNh+y3h4ByBRGRSHqQkT2GzZl4ZBpyEy0KPOczclNkcRsTWNiK1pXDU2WZbqfJB2WttBVVVJTEykX79+zgqhWcKDvTCareQUVbXSkdzbIRm8XLJi2XL2AJrQLsiefo3e16ooHErJpU/nAAw6UZksCK2ZQxPCww8/zPHjx4GqpqY6na56BNWW5uoQFlfrESRJqqpYdrGEYC28iFKQibaJA+8lny+itMLM4NjGTTkqCELLY/cio23btlV/fu+996o/BwQEsHv3bnuf3m46BHogSxLp2SUM6l7Va1f2D8N8aheqqtQ6FpCjWc4eBKR6J7upzcHkbAx6DXExja+MFgShZXGNu1YLpNNqaB/occ2YRpgrUUvynRhZTZazB9C079qk4iKLVSE+JZd+XQJF3wNBaANEQmiG8GCva5qeAi5Tj2AtuIBSeKHJxUVJ5wspq7QwuLsoLhKEtkAkhGaICPamsMRISXnVKKeyX0eQNFgunnRyZFUsZw/QrOKipBzcDRp6RoviIkFoC0RCaIarPZarK5b17mhjBmFO+Rn1N2MEOYPl3MGq4iIP38bva1U4fCqXfl2C0GnFr4kgtAXiL70ZfpsQAPRxE8BciTnlJ2eFBVwtLrqINmZwk/ZPPFdAudFSXWEuCELrJxJCM/h46mnnpSc9+1f1CMExaEK6YDqxBVVRnBab5ewBkCS00QOatP/B5Bw8DFpRXCQIbYhICM0UEVxzbgQAXdwE1JJcLOePOCUmVVWvtC7q3qTiIrNF4UhqLv27BqHViF8RQWgrxF97M0WEeJGVX4bZ8svbgDZqAJJ3IObjG50Sk1KYiVKU1eTWRSfO5VNhtDJIzIomCG2KSAjNFB7shVVRycovq14myTL6nuOxXjqFNTfN4TFZzlwtLmpqZ7QcPN20xEY2vu+CIAgtl0gIzVQ9N0L2b4qNuo8CnRsmB78lqKqK+exBNB1ikd19Gr2/yWzlSGoeA7qJ4iJBaGvEX3wzhfh5oNfK19QjSHoPdN1GYjlzAKWs0GHxKAWZqJcvoY1uWnHR8bMFGE1WBonOaILQ5oiE0EyyLBEW7EVGzrVD3ep73QSqgjlxq8PiaX7romy83HV0j/S1bWCCILg8kRBs4OoQFqpac24G2ScYbVQ/TEnbUS1Gu8dRVVx0AE2HHk0qLjKarSSczmdgtyA0svjVEIS2RvzV20BEsBdllRYKiq+96eviJoKxDHPqXrvHoeSno17ObnLrouNn8jGaraIzmiC0USIh2EB4cM25EX5NE9oVOTAS8/FN17xB2Jrl7EGQ5CYXFx1IzsHHQ0fXCF/bBiYIQosgZky3gY5BnkhAek4JfbsE1lgnSRL6uIlUbl+BNfM42vDe1z2GaqrAlLAe68VkNBG90XUeiuwdVO+5VUXBmnkM08ntWDOOoQmLQ3Zr2FyuJrOVwhIjBSVGCoorOXY6j+G924viIkFoo0RCsAF3g5YgP/frviEAaGMGI+1fhen4pmsSgmq1YE7ajunwOtTKEmS/jpgOrsZ0cDWa0K5ou9yALmYQksGzxn5KeRHm5J8wJ+9ELc1HcvdB32cqurgJ141BVVXW7U7jXFYxhSVGCkuMlFaYa2yjkSVu6BXajCshCEJLJhKCjUQEe13TF+EqSaNF12McpkPfYC24gMa/45XhJQ5iPPg1anEOmg6xGIbchiYoGqU4F/PpvVhO78X480qMuz9FG9EbbedhlJf4U7F3fdWwGKqCpmNPdEPnoo3qhyTX/uM8n13Ct7vOEervQai/B507tsPP24C/jwE/bzf8vQ34ehvEvMmC0IaJhGAj4cFeHErJpcJowd1w7WXV9RiL6ch3mE9sQu08FOP+VSi555D9w3Cb9DSa8DgkSQJA9gnC0H8G+n7TUfLPY07di+X0Pixph7kESAYvdHET0MeOQW7XsCf6fYnZaGSJJfcMwNNNZ8uvLghCKyESgo2Eh1SV22fmltIlzPea9bKbN7ouwzEn78ScvBPJ0x+30Q+i7TIcqZYye0mS0ARGoQmMQh1yG9aLSXi7Q3m7rkhafYNjUxSV/UnZ9O4UIJKBIAi1smvtYWlpKdOmTSMz89opJc+ePcvdd9/NjBkzePDBB7l8+bI9Q7G7iOvMjfBb+j6TkQMj0A++Fc/bX0TXbWStyeC3JFmDNqwXXt2HNSoZACSnF3K51MTQnqJ+QBCE2tktISQkJDBv3jzS0tKuWaeqKo899hgPP/ww69atIzY2lhUrVtgrFIfw8zbg6aattR4BQG4Xgufsv2LoO7XRN/Xm2HcyGze9hj6dAhx2TkEQWh67JYRVq1axbNkygoOv7eSUmJiIh4cHo0aNAuDRRx/lzjvvtFcoDiFJUnWPZVditliJT8lhQNcg9KLCWBCEOtitDmH58uW1rktPTycwMJDFixeTlJRETEwMzz77rL1CcZiIEG92HLmAoqjIsuTscAA4dqZqbgNRXCQIQn2cUqlssVg4cOAAn376KXFxcbz++uu8+OKLvPjii406TkCAl50ihKCghnXu+rUenQLZdDADExLhTdi/oRoT2+EfkvD1NjByQDgaBwxn3ZTr5igitqYRsTWNK8dWG6ckhKCgICIjI4mLiwNg2rRpLFiwoNHHyc8vRVFsPxxEUJA3ubnXjl5aH1/3qsuZkJyNm53uvY2JrbzSzMGTlxjTryMFBWX179BMTb1ujiBiaxoRW9O4amyyLNX5IO2UMQr69etHQUEBycnJAGzbto2ePXs6IxSb6hDoiaeblkPJOc4OBYD4lFwsVpVhorhIEIQGcGhCePjhhzl+/Dhubm689dZbLF26lKlTp7J//34WLVrkyFDsQquRGdu/I4dP5ZJdWO7scNh3MptgP3eiQlveq6sgCI5n9yKjbdu2VX9+7733qj/36dOHr7/+2t6nd7gb+4fx4/50Nh3M4O4J3ZwWR2GJkeTzhUwfHlXdA1oQBKEuYlhLG2vnZWBYz1B2H8uipNzktDgOJGWjgmhdJAhCg4mEYAcTBkdgsihsP3LBaTHsO5lNVKg3of4eTotBEISWRSQEO+gY6EnvTgFsi8/EbLE6/PxZ+WWcv1Qi3g4EQWgUkRDsZOLgCIrLzexNzHb4ufclZiNJMDhWTIUpCELDiYRgJ90jfIkM8WbjgXQUO0+d+WuqqrL/ZDaxkX74ehkcdl5BEFo+kRDsRJIkJg4JJyu/nGNn8h123rNZxeQUVTCkR4jDzikIQusgEoIdDewWTICPgY370x12zv2J2Wg1MgO6iuIiQRAaRyQEO9JqZMYPDCclo4hzWcV2P59VUTiQlE3fzgF4uIm5jwRBaByREOxsVJ8OuBs0bDxg/7eEpPOFFJebGdJDtC4SBKHxREKwM3eDltF9O3IoOZe8ogq7nafCaGHroUw8DFp6i4lwBEFoApEQHGD8gDAkCTYfunYq0V8zW6xk5Zc1qlVSQXElq7ad5g//3U3CmXzGDQhDpxU/VkEQGk8UNDuAv48bg2ND+CnhIjNGRNWY6F5VVU5fuMzu45c4mJxDhdGCj4eOHtH+xEUH0DPaHx/Pa6fbPH+phI0H0jmYnIOqwsDuQUwcHEF0ex9HfjVBEFoRkRAcZOLgcPYmXmLn0YtMGRpJXlEFe05cYs+JS+QUVaDXVbUM6hLWjlOZRSSeK2DflU5tESFe9IoOoFe0P2m5ZazanEJyehEGvYYbB4QxfmAYge3cnfwNBUFo6URCcJCIEG96RPmx6UA6x8/kk5JRBFR1YJs+PIr+XYNwN1T9OMb064iiqqRnl3DibAEnzhWw8UA66/edB8DP28CtYzsxuk8HPH71tiEIgtAcIiE40JShkbzyxVHcDUZmjYphWM+QWp/sZUkiKtSHqFAfpt0QRYXRQvL5Qjy93YgJ9kTrgOkwBUFoW0RCcKAeUf689v9G4OOha/QcBe4GLf26Brns1HyCILR8IiE4WLvrVBALgiC4AlHuIAiCIAAiIQiCIAhXiIQgCIIgAHZOCKWlpUybNo3MzGt76L755puMHTuWmTNnMnPmTD777DN7hiIIgiDUw26VygkJCSxdupS0tLTrrj9x4gSvvvoq/fr1s1cIgiAIQiPY7Q1h1apVLFu2jODg64/Lf+LECd59912mT5/O888/j9FotFcogiAIQgPY7Q1h+fLlta4rKysjNjaWP/7xj0RGRrJo0SL++9//8tRTTzXqHLLcuLb8rnLs5hKxNY2IrWlEbE3jirHVF5Okqvad8HfcuHF8/PHHhIWF1brNyZMnWbx4MWvXrrVnKIIgCEIdnNLK6OLFi3z99dfV/1ZVFa1W9JETBEFwJqckBDc3N/75z3+SkZGBqqp89tln3HTTTc4IRRAEQbjCoQnh4Ycf5vjx4/j7+/P888/z2GOPMWnSJFRV5f7773dkKIIgCMJv2L0OQRAEQWgZRE9lQRAEARAJQRAEQbhCJARBEAQBEAlBEARBuEIkBEEQBAFoYwnht6OvfvPNN0yZMoXp06fzt7/9DYvFQlJSUvUIrDNnzmTkyJFMmzYNqOpQd+eddzJp0iQee+wxysrKXCa2NWvWMGLEiOp1r732mkNjA0hMTGTOnDnMmDGD+fPnU1xcDDj/utUVmytct507dzJ9+nSmT5/OM888U319XOG61Rabva7bm2++ydSpU5k6dSovv/wyAHv27GH69OlMmDChxnmSkpKYPXs2EydOZMmSJdUx2+u62SI2e/6+2YTaRhw9elSdNm2a2rNnTzUjI0M9c+aMOnLkSDU7O1tVVVVdtmyZ+sEHH9TYp7y8XJ06dap68OBBVVVV9ZFHHlG///57VVVV9c0331Rffvlll4nt+eefV7/77jubxNPU2ObNm6fu2LFDVVVV/cc//qG++uqrqqq6xnWrLTZnX7fLly+rQ4cOVVNTU1VVVdUVK1aoL7zwgqqqzr9udcVmj+u2e/du9fbbb1eNRqNqMpnUe+65R/3uu+/U0aNHq+np6arZbFYfeOCB6p/j1KlT1SNHjqiqqqp//vOf1c8++0xVVftcN1vFZq/fN1tpM28Ivx19NSUlhb59+1b/e+zYsWzZsqXGPu+++y6DBg1i4MCBmM1mDh48yMSJEwGYPXs2P/74o0vEBnD8+HHWrFnD9OnT+cMf/sDly5cdHpuiKNVPYxUVFbi5ubnMdbtebOD865aWlkaHDh3o3LlzjeWucN1qiw3sc92CgoJYtGgRer0enU5Hp06dSEtLIzIykvDwcLRaLdOnT+fHH3/kwoULVFZW0rdvX+CX62Ov62aL2MB+v2+20mYSwvLly6tvngDdu3cnISGBrKwsrFYrP/74I3l5edXrS0pKWLVqFU888QQAhYWFeHl5VY+5FBQURHZ2tkvEdjWe3/3ud6xbt4727dvz/PPPOzy2RYsWsXTpUkaMGMGePXuYO3euy1y368V2NR5nXreoqCguXbpEcnIyABs2bCAvL88lrlttsV2Nx9bXrUuXLtU30bS0NDZs2IAkSQQFBVVvExwcTHZ2Njk5OTWWX70+9rputojt6md7/L7ZSpsdUS46OppnnnmGxx57DDc3NyZNmsTx48er169bt47x48cTEBAAVA3AJ0k1h4797b+dFRvAW2+9Vf35oYcestvYULXFVllZyZIlS1i5ciW9e/fmww8/5E9/+hMvvPCC069bbbGtWLHC6dfNx8eHl156iWeffRZFUbjtttvQ6XQu8ftWW2xg39+31NRU5s+fz8KFC9FoNDUm2bp6XRRFqXE9ri6393VrTmzguL/Tpmozbwi/ZTQa6d27N2vXruWLL74gJCSE8PDw6vVbtmxhypQp1f/29/enpKQEq9UKQG5ubq2T/zg6tpKSElauXFn9b1VV0Wg0Do3t1KlTGAwGevfuDcDtt9/OgQMHXOK61RabK1w3q9VKaGgoX331FatXryY2Npbw8HCXuG61xWbP6xYfH899993HM888w6xZswgNDSU3N7d6/dXr8NvleXl5BAcH2/W6NTc2R/6+NVWbTQjl5eXcd999lJaWYjKZ+PTTT6tvsqqqkpiYWGN6T51Ox8CBA1m/fj0Aa9euZdSoUS4Rm4eHB//3f/9HQkICAJ9++qndnjxqiy0yMpJLly5x9uxZALZu3UpcXJxLXLfaYnOF6yZJEg888ADZ2dmoqsrKlSuZMmWKS1y32mKz13XLysri8ccf55VXXmHq1KkA9OnTh3PnznH+/HmsVivff/89o0aNomPHjhgMBuLj4wH49ttvGTVqlN2umy1ic+TvW5M5oSLbqcaOHatmZGSoqqqqq1atUqdMmaJOmDBB/fe//129TV5ennrDDTdcs29mZqZ61113qZMnT1YfeOABtaioyGViO3jwoHrzzTerkyZNUh999FG1uLjY4bHt2LFDnT59ujpt2jT13nvvVdPT01VVdY3rVltsrnDdtm/frk6bNk2dMGGCumzZMtVkMqmq6hrXrbbY7HHdXnjhBbVv377qjBkzqv/73//+p+7Zs0edPn26OmHCBHX58uWqoiiqqqpqUlKSOmfOHHXixInq008/rRqNRlVV7XPdbBWbvX/fmkuMdioIgiAAbbjISBAEQahJJARBEAQBEAlBEARBuEIkBEEQBAEQCUEQBEG4QiQEQRAEARAJQRAEQbiizY5lJAiNsXTpUgICAnjqqaeAqt6nmzZtYs6cObz99tuYzWbc3Nz405/+RL9+/cjLy+O5554jPz+f3NxcOnbsyOuvv05AQADjxo2jd+/epKSk8PTTT7teb1WhzRJvCILQAHfeeSerV6+unuhk1apVjBw5ktdee40VK1awdu1aXnjhBf7f//t/lJeX88MPP9C3b1++/PJLtm7dipubG99++2318bp06cKGDRtEMhBcinhDEIQGiI2NJSwsjB07dhAdHU1OTg5Wq5WcnBzuu+++6u0kSSI9PZ17772XQ4cO8eGHH5KWlkZqaip9+vSp3u7Xw08LgqsQCUEQGujqW0JUVBS33XYbiqIwbNgwXn/99eptsrKyCA4O5p///CfHjh1jzpw5DBkyBIvFwq9HifHw8HDCNxCEuokiI0FooIkTJ5KUlMTGjRuZM2cOw4YNY/fu3Zw5cwaomn94xowZVFZWsmvXLu69915uvvlmAgIC2LNnT/WQzILgqsQbgiA0kF6vZ+LEieTl5eHv74+/vz/PP/88Tz/9NKqqotVqefvtt/H09OTxxx/n5Zdf5o033kCn09G/f3/S09Od/RUEoU5itFNBaKDy8nLuuusunnvuuerpFAWhNRFFRoLQAD///DNjxoxh5MiRIhkIrZZ4QxAEQRAA8YYgCIIgXCESgiAIggCIhCAIgiBcIRKCIAiCAIiEIAiCIFwhEoIgCIIAwP8HLgtsCaFjZgQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "births.pivot_table(\"births\",\n",
    "                   index=\"year\",\n",
    "                   columns=\"gender\",\n",
    "                   aggfunc=\"sum\").plot()\n",
    "plt.ylabel(\"Annual total births\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Don't forget to follow us on [YouTube](http://youtube.com/tirendazacademy) | [Medium](http://tirendazacademy.medium.com) | [Twitter](http://twitter.com/tirendazacademy) | [GitHub](http://github.com/tirendazacademy) | [Linkedin](https://www.linkedin.com/in/tirendaz-academy) | [Kaggle](https://www.kaggle.com/tirendazacademy) 😎"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
